require "app/models/tag"
require "tag_holder"
class Usuario < ActiveRecord::Base
include(TagHolder)
  has_many :perfil_tags
  has_many :annotations
  has_many :tags, :through => :perfil_tags
  validates_presence_of(:sobrenome, :message => "Sobrenome nao pode ser nulo")
  validates_presence_of(:nome, :message => "Nome nao pode ser em branco");
  validates_presence_of(:senha, :message => "Senha nao pode ser em branco");
  validates_length_of(:nome, :maximum => 30, :message => "Nome n�o pode ser maior que 30 caracteres")
  validates_length_of(:sobrenome, :maximum => 30, :message => "Sobrenome n�o pode ser maior que 30 caracteres")
  validates_length_of(:senha, :maximum => 12, :message => "Senha n�o pode ser maior que 12 caracteres")
  validates_length_of(:senha, :minimum => 6, :message => "Senha n�o pode ser menor que 6 caracteres")
  validates_length_of(:telefone, :maximum => 15, :message => "Telefone n�o pode ser maior que 15 caracteres")
  validates_length_of(:email, :maximum => 100, :message => "email n�o pode ser maior que 100 caracteres")
  validates_length_of(:instituicao, :maximum => 80, :message => "Institui��o n�o pode ser maior que 80 caracteres")
  
  def validate
    result = email.match(/(.+)@(.+)\.(.{3})/) unless email.nil?
    if (!result)
      errors.add(:email, "Formato de email invalido")    
    end 
    
  end  
end
